package com.ruoyi.system.service.impl;

import java.util.List;

import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.mapper.BlogLabelMiddleMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.BlogLabelMapper;
import com.ruoyi.system.domain.BlogLabel;
import com.ruoyi.system.service.IBlogLabelService;

/**
 * 博客评论Service业务层处理
 *
 * @author ruoyi
 * @date 2022-07-31
 */
@Service
public class BlogLabelServiceImpl implements IBlogLabelService {

    @Autowired
    private BlogLabelMiddleMapper blogLabelMiddleMapper;
    @Autowired
    private BlogLabelMapper blogLabelMapper;

    /**
     * 查询博客评论
     *
     * @param id 博客评论主键
     * @return 博客评论
     */
    @Override
    public BlogLabel selectBlogLabelById(Long id) {
        return blogLabelMapper.selectBlogLabelById(id);
    }

    /**
     * 查询博客评论列表
     *
     * @param blogLabel 博客评论
     * @return 博客评论
     */
    @Override
    public List<BlogLabel> selectBlogLabelList(BlogLabel blogLabel) {
        return blogLabelMapper.selectBlogLabelList(blogLabel);
    }

    /**
     * 新增博客评论
     *
     * @param blogLabel 博客评论
     * @return 结果
     */
    @Override
    public int insertBlogLabel(BlogLabel blogLabel) {
        blogLabel.setCreateTime(DateUtils.getNowDate());
        return blogLabelMapper.insertBlogLabel(blogLabel);
    }

    /**
     * 修改博客评论
     *
     * @param blogLabel 博客评论
     * @return 结果
     */
    @Override
    public int updateBlogLabel(BlogLabel blogLabel) {
        blogLabel.setUpdateTime(DateUtils.getNowDate());
        return blogLabelMapper.updateBlogLabel(blogLabel);
    }

    /**
     * 批量删除博客评论
     *
     * @param ids 需要删除的博客评论主键
     * @return 结果
     */
    @Override
    public int deleteBlogLabelByIds(Long[] ids) {
        for (Long id : ids) {
            if (blogLabelMiddleMapper.countWithBlogLabel(id)>0) {
                throw new ServiceException("当前标签下存在博客，请先删除");
            }
        }
        return blogLabelMapper.deleteBlogLabelByIds(ids);
    }

    /**
     * 删除博客评论信息
     *
     * @param id 博客评论主键
     * @return 结果
     */
    @Override
    public int deleteBlogLabelById(Long id) {
        return blogLabelMapper.deleteBlogLabelById(id);
    }
}
